home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / tools / cpx_acc / makecpx / sample / cpxdata.h next >
Encoding:
C/C++ Source or Header  |  1994-09-22  |  4.3 KB  |  146 lines

  1. /*  CPX DATA STRUCTURES
  2.  *==========================================================================
  3.  *  XCPB structure is passed TO the CPX
  4.  *  CPXINFO structure pointer is returned FROM the CPX
  5.  *
  6.  *  xcpb structure is initialized in XCONTROL.C
  7.  */
  8.  
  9. typedef struct {
  10.      short   handle;
  11.      short   booting;
  12.      short   reserved;  
  13.      short   SkipRshFix;
  14.  
  15.      BYTE    *reserve1;
  16.      BYTE    *reserve2;
  17.      
  18.      void    (*rsh_fix)();
  19.      void    (*rsh_obfix)();
  20.      short   (*Popup)();
  21.      void    (*Sl_size)();
  22.      void    (*Sl_x)();
  23.      void    (*Sl_y)();
  24.      void    (*Sl_arrow)();
  25.      void    (*Sl_dragx)();
  26.      void    (*Sl_dragy)();
  27.      WORD    (*Xform_do)();
  28.      GRECT   *(*GetFirstRect)();
  29.      GRECT   *(*GetNextRect)();
  30.      void    (*Set_Evnt_Mask)();
  31.      BOOLEAN (*XGen_Alert)();
  32.      BOOLEAN (*CPX_Save)();
  33.      BYTE    *(*Get_Buffer)();
  34.      int     (*getcookie)();
  35.      int     Country_Code; 
  36.      void    (*MFsave)();        
  37. } XCPB;
  38.  
  39.  
  40.  
  41. typedef struct {
  42.      BOOLEAN    (*cpx_call)();
  43.      void    (*cpx_draw)();
  44.      void    (*cpx_wmove)();
  45.      void    (*cpx_timer)();
  46.      void    (*cpx_key)();
  47.      void    (*cpx_button)();
  48.      void    (*cpx_m1)();
  49.      void    (*cpx_m2)();
  50.      BOOLEAN    (*cpx_hook)();
  51.      void      (*cpx_close)();
  52. }CPXINFO;
  53.  
  54.  
  55.  
  56. typedef struct {
  57.     WORD x;
  58.     WORD y;
  59.     WORD buttons;
  60.     WORD kstate;
  61. }MRETS;
  62.  
  63.  
  64.  
  65.  
  66. /* Object structure macros, useful in dealing with forms
  67.  * ================================================================
  68.  * `tree' must be an OBJECT *
  69.  */
  70. #define SPECIAL        0x40 /* user defined object state */
  71.  
  72. #define ObNext(obj)    ( tree[(obj)].ob_next )
  73. #define ObHead(obj)    ( tree[(obj)].ob_head )
  74. #define ObTail(obj)    ( tree[(obj)].ob_tail )
  75. #define ObFlags(obj)    ( tree[(obj)].ob_flags )
  76. #define ObState(obj)    ( tree[(obj)].ob_state )
  77. #define ObSpec(obj)    ( tree[(obj)].ob_spec )
  78. #define TedText(obj)    ( tree[(obj)].ob_spec->te_ptext )
  79. #define TedTemp(obj)    ( tree[(obj)].ob_spec->te_ptmplt )
  80. #define TedLen(obj)    ( tree[(obj)].ob_spec->te_txtlen )
  81. #define TedTempLen(obj)    ( tree[(obj)].ob_spec->te_tmplen )
  82.  
  83. #define TedJust( obj )  ( tree[(obj)].ob_spec->te_just )
  84. #define TedFont( obj )  ( tree[(obj)].ob_spec->te_font )
  85. #define TedColor( obj ) ( tree[(obj)].ob_spec->te_color )
  86.  
  87. #define ObString(obj)    ( tree[(obj)].ob_spec.free_string )
  88. #define ObX(obj)     ( tree[(obj)].ob_x )
  89. #define ObY(obj)     ( tree[(obj)].ob_y )
  90. #define ObW(obj)     ( tree[(obj)].ob_width )
  91. #define ObH(obj)     ( tree[(obj)].ob_height )
  92. #define ObRect(obj)     ( *(GRECT *)(&(tree[(obj)].ob_x)) )
  93.  
  94.  
  95. #define Set_tree(obj)        ( rsrc_gaddr(R_TREE,(obj),&tree) )
  96. #define Set_alert(num,s)    ( rsrc_gaddr(R_STRING,(num),&((OBJECT *)(s)) )
  97. #define Set_button(num,s)    ( rsrc_gaddr(R_STRING,(num),&((OBJECT *)(s)) )
  98.  
  99. #define IsSelected(obj)        ( ObState(obj) & SELECTED )
  100. #define IsEditable(obj)        ( ObFlags(obj) & EDITABLE )
  101. #define IsSpecial(obj)        ( ObState(obj) & SPECIAL  )
  102. #define ActiveTree( newtree )    ( tree = newtree )
  103. #define IsDisabled(obj)        ( ObState(obj) & DISABLED )
  104. #define IsActiveTree( newtree ) ( tree == newtree )
  105.  
  106. /* macros ok when object is not on screen
  107.  */
  108. #define HideObj(obj)        ( ObFlags(obj) |= HIDETREE )
  109. #define ShowObj(obj)        ( ObFlags(obj) &= ~HIDETREE )
  110. #define MakeEditable(obj)    ( ObFlags(obj) |= EDITABLE )
  111. #define NoEdit(obj)        ( ObFlags(obj) &= ~EDITABLE )
  112. #define Select(obj)        ( ObState(obj) |= SELECTED )
  113. #define Deselect(obj)        ( ObState(obj) &= ~SELECTED )
  114. #define Disable(obj)        ( ObState(obj) |= DISABLED )
  115. #define Enable(obj)        ( ObState(obj) &= ~DISABLED )
  116. #define MarkObj(obj)        ( ObState(obj) |= SPECIAL  )
  117. #define UnmarkObj(obj)        ( ObState(obj) &= ~SPECIAL  )
  118. #define SetNormal(obj)        ( ObState(obj) = NORMAL       )
  119. #define MakeDefault(obj)    ( ObFlags(obj) |= DEFAULT )
  120. #define NoDefault(obj)        ( ObFlags(obj) &= ~DEFAULT )
  121. #define MakeExit( obj )        ( ObFlags(obj) |= EXIT )
  122. #define NoExit( obj )        ( ObFlags(obj) &= ~EXIT )
  123.  
  124.  
  125. /* Shorthand macro to pass parameters for objc_draw() */
  126. #define PTRS(r) r->g_x, r->g_y, r->g_w, r->g_h
  127. #define ELTS(r) r.g_x, r.g_y, r.g_w, r.g_h
  128.  
  129.  
  130.  
  131. #define VERTICAL    0
  132. #define HORIZONTAL    1
  133. #define NULLFUNC    ( void(*)())0L
  134.  
  135. #define SAVE_DEFAULTS    0
  136. #define MEM_ERR        1
  137. #define FILE_ERR    2
  138. #define FILE_NOT_FOUND    3
  139.  
  140. #define MFSAVE 1
  141. #define MFRESTORE 0
  142.  
  143.  
  144. /* Additional define from XFORM_DO() */
  145. #define CT_KEY        53
  146.